package cn.ljy.authority.config.upload;

import lombok.AccessLevel;
import lombok.Data;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 *  上传文件配置信息
 * 说明：属性设定为从Yml中进行配置
 * @author ljy
 * 20220604
 */
@ConfigurationProperties(prefix = "myuploadfile")
@Component
@Data
//@Setter(AccessLevel.PRIVATE)
public class FileUploadConfig {
    private String uploadFolder;//文件上传目录,物理路径。 c:/ljy-mes-management/
    private String staticAccessPath;//静态资源对外暴露的访问路径。/resource/**

    //文件上传后回显网址的基类。
    // 例如：upload/，那么回显的网址就是：http://localhost:8080/upload/b17f24ff026d40949c85a24f4f375d42.jpg
    @Setter(AccessLevel.NONE)
    private final String baseUploadUrl="resource/";
    //客户个人头像的物理存储目录
    @Setter(AccessLevel.NONE)
    private final String customerProfilePath="upload/user_head_img/";
    //资源文件存储的物理存储目录
    @Setter(AccessLevel.NONE)
    private final String resourcePath="upload/resource/";

    //客户头像上传配置
    @Setter(AccessLevel.NONE)
    //保存客户个人头像的目录，用于上传的时候存储在相关路径中。如果放在static目录下，必须指明static下的绝对路径
    private String customerProfilePictureUploadBaseUrl;//拼接后应该是c:/ljy-mes-management/resource/upload/user_head_img/
    //显示客户个人头像的目录，用于传数据到前端的时候展示头像使用
    @Setter(AccessLevel.NONE)
    private String customerProfilePictureBaseUrl;// resource/upload/user_head_img/

    //资源上传配置
    @Setter(AccessLevel.NONE)
    //保存资源的物理路径，用于上传的时候存储在相关路径中。如果放在static目录下，必须指明static下的绝对路径
    private String resourceUploadSavePath;//拼接后应该是  c:/ljy-mes-management/upload/resource
    //显示资源的目录，用于传数据到前端的时候展示地址使用
    @Setter(AccessLevel.NONE)
    private String resourceUploadUrl; // /resource/upload/resource/



    // @PostConstruct用于在完成依赖项注入以执行
    @PostConstruct
    public void init(){
        //用户头像地址
        customerProfilePictureUploadBaseUrl=uploadFolder+customerProfilePath;
        customerProfilePictureBaseUrl=baseUploadUrl+customerProfilePath;
        //资源地址
        resourceUploadSavePath=uploadFolder+resourcePath;
        resourceUploadUrl=baseUploadUrl+resourcePath;
    }
}
